/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package modelos;

import general.conectarBD;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;


public class modelo_productos extends conectarBD {


    String id,nombre,descripcion,id_categorias;
    float precio;

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getId_categorias() {
        return id_categorias;
    }

    public void setId_categorias(String id_categorias) {
        this.id_categorias = id_categorias;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public float getPrecio() {
        return precio;
    }

    public void setPrecio(float precio) {
        this.precio = precio;
    }

    public String getClave() {
        return clave;
    }

    public void setClave(String clave) {
        this.clave = clave;
    }

    public Connection getCon() {
        return con;
    }

    public void setCon(Connection con) {
        this.con = con;
    }

    public String getConneccionString() {
        return conneccionString;
    }

    public void setConneccionString(String conneccionString) {
        this.conneccionString = conneccionString;
    }

    public String getDriver() {
        return driver;
    }

    public void setDriver(String driver) {
        this.driver = driver;
    }

    public ResultSet getRs() {
        return rs;
    }

    public void setRs(ResultSet rs) {
        this.rs = rs;
    }

    public Statement getStmt() {
        return stmt;
    }

    public void setStmt(Statement stmt) {
        this.stmt = stmt;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }


    public boolean insertar(String id, String nombre, String descripcion,String id_categoria,String precio,ArrayList<modelo_ingredientes> lista_ingredientes)
    {
            conectar();// base de datos
            String sql = " insert into t_productos (id_producto,nombre_producto,descripcion_producto,precio_producto,id_categoria) values ('"+id+"','"+nombre+"','"+descripcion+"',"+precio+",'"+id_categoria+"')";
            accionSql(sql);
            desconectar();
            for (int i = 0; i < lista_ingredientes.size(); i++) {
             String sqlAutoIncremento1 = "SELECT COUNT(DISTINCT id_ing_prod) FROM t_ingredientes_productos";
             int id_ing_prod= autoIncremento(sqlAutoIncremento1);
              String sql2 = " insert into t_ingredientes_productos(id_ing_prod,stock_ing_prod,id_ingredientes,id_productos) values ('"+id_ing_prod+"',"+lista_ingredientes.get(i).getStock()+",'"+lista_ingredientes.get(i).getId()+"','"+id+"')";
              System.out.print(sql2);
              conectar();// base de datos
              accionSql(sql2);
              desconectar();
            }
            return true;
    }

    public ArrayList<modelo_productos> lista(){
    ArrayList<modelo_productos> lista_productos = new ArrayList<modelo_productos>();
    String sql="select * from t_productos";
    conectar();
    accionSql(sql);
    try{
         while (rs.next()){
            modelo_productos  productos = new modelo_productos();
            productos.setId(rs.getString("id_producto"));
            productos.setNombre(rs.getString("nombre_producto"));
            productos.setDescripcion(rs.getString("Descripcion_producto"));
            productos.setId_categorias(rs.getString("id_categoria"));
            productos.setPrecio(rs.getFloat("precio_producto"));
            lista_productos.add(productos);
         }
    } catch (SQLException ex) {
        Logger.getLogger(modelo_productos.class.getName()).log(Level.SEVERE, null, ex);
    }
    return lista_productos;
  }

    public int autoIncremento (String sql)
    {
        int ID=0;
        try {
            conectar(); // base de datos
            accionSql(sql);
            while (rs.next()) {
             ID =rs.getInt(1)+1;
            }
            return ID;
        } catch (SQLException ex) {
            Logger.getLogger(modelo_productos.class.getName()).log(Level.SEVERE, null, ex);
            return ID;
        }
    }

}
